package com.jacobson.huobi.mvp.contract

import com.alibaba.fastjson.JSONObject
import com.jacobson.core.mvp.IModel
import com.jacobson.core.mvp.IPresenter
import com.jacobson.core.mvp.IView
import com.jacobson.huobi.entities.response.CommonResponse
import com.jacobson.huobi.entities.vo.KycAuthResVo
import io.reactivex.Observable
import okhttp3.MultipartBody

interface KycAuthContract {
    interface Model : IModel {
        fun submitKycAuth(kycAuthResVo: KycAuthResVo): Observable<CommonResponse<JSONObject>>

        fun loadKycDetail(width: Int): Observable<CommonResponse<JSONObject>>

        fun kycUpload(file: MultipartBody.Part, side: String, width: Int = 150): Observable<CommonResponse<String>>
    }

    interface View : IView{
        fun onSubmitKycAuthResultResp(response: CommonResponse<JSONObject>)

        fun onLoadKycDetailResultResp(response: CommonResponse<JSONObject>)

        fun onKycUploadResultResp(response: CommonResponse<String>)
    }

    interface Presenter : IPresenter{
        fun submitKycAuth(kycAuthResVo: KycAuthResVo)

        fun loadKycDetail(width: Int)

        fun kycUpload(file: MultipartBody.Part, side: String, width: Int = 150)
    }
}